When typically conducting anti-virus, anti-spam, or other content filtering on a gateway device, the traffic stream is run through a proxy that completes a “fetch-scan-forward” operation of the data traffic exchanged between a server and client. Because anti-virus software and anti-spam checking software often only work on complete data files, the conventional option of completing stream filtering of data traffic is not available for these applications. Instead, a proxy, or software module, first scans the data received from the server for intended delivery to the client and, upon completing the scan, forwards the data to the client or blocks the data communication in the event of a detected trigger event, such as a detected virus or a security violation.
During the fetch and scan phases of a fetch-scan-forward cycle, little or no. data is transmitted to the client during server-proxy communications. This presents a problem because many clients have relatively short time-out cycles. Therefore, in the absence of a data communication to the client, the client may time-out and abort a data request transmitted to the server.
In an attempt to address this issue, others have recognized this type of data communication problem and provided alternative solutions. One prior solution is to “trickle-out” some of the original data received from the server to the client before the complete original data set has been scanned at the gateway. Another prior solution is to establish a time-out period at the proxy and, if this time-out is reached, the original data is streamed to the client to prevent a client-side time-out. In both of these solutions, the client is at risk of a possible virus infection or security violation if the data forwarded by the proxy to prevent the client-side time-out carries a virus or other form of unwanted software behavior.
Furthermore, during the fetch and scan phases of a fetch-scan-forward cycle, if a slow data communication link exists between the proxy and the client, the server may be idle for a long period, thereby resulting in an unintentional server-side time-out.
Accordingly, there remains a need for a method or system that can prevent client-side and server-side time-outs while conducting anti-virus, anti-spam, or other content filtering on a gateway. Furthermore, there is a need in the art for a method or system that can prevent client-side and server-side time-outs without transmitting original data and allowing a possible virus infection or security violation to reach the client and/or.